package com.spukmk3me.sound;

public interface SoundInstance
{
    public Sound getOriginalSound();

    /**
     *   Set the number of loops.
     *   @param numberOfLoops Number of loops, -1 for infinite loops.
     *  If this parameter gets a negative value other than -1, the operation
     *  will be ignored.
     */
    public abstract void setNumberOfLoops( int numberOfLoops );
    
    /**
     *   Get the number of loops.
     *   @return Number of loops was set. If the number of loops is infinite,
     *  returns -1. Default is 1.
     */
    public abstract int getNumberOfLoops();
    
    /**
     *   Set the volume for this sound object.
     *   The default number is 1.0.
     */
    public abstract void setVolume( float volume );
    
    /**
     *   Get the current volume of this sound object.
     *   @return Current volume of this sound.
     */
    public abstract float getVolume();
    
    public abstract void play();
    public abstract void stop();
}
